<?php
/**
 * 
 * Enter description : controller gửi thư cho hệ thống người dùng
 * @author admin888
 * Date 23/06/2011
 */
class GuithuController extends Zend_Controller_Action {
	protected $_uid = "null";
	/*
	 * admin888 <doan.hut@gmail.com>
	 * Description : dùng chung cho action
	 */
	public function init() {
		
		$auth = Zend_Auth::getInstance ();
		if ($auth->hasIdentity ()) {
			$data = $auth->getIdentity ();
			$this->view->name = $data->name;
			$this->view->iddangnhap = $data->uid;
			$this->_uid = $data->uid;
			$cd = new Model_Caidat();
			$thongbao = $cd->getthongbao($data->uid);
			$this->view->thongbao = $thongbao;		
		
		}
		//phần lay out trên
		$this->view->today = $date = date('m-d-Y H:i:s');
		$reponse = $this->getResponse ();
		$reponse->insert('top', $this->view->render('index/top.phtml'));
		$this->view->title = " Gửi thư - Email Manager ";
	}
	/*
     * admin888 <doan.hut@gmail.com>
     * Description : check nếu chưa login thì chuyển về trang ngoài
     * Note hàm này mọi người có thể dung chung
     */
	public function preDispatch() {
		$auth = Zend_Auth::getInstance ();
		if (! $auth->hasIdentity ()) {
			if ($this->_request->getActionName () != 'login') {
				$this->_redirect ( 'login' );
			}
		}
	}
	// --- Code --- 
	/**
	 * admin888 <doan.hut@gmail.com>
	 * Enter description : index gửi 
	 */
	public function indexAction() {
		// lấy thông tin câu hình thành viên 
		$guithu = new Model_Guithu ();
		$ch = $guithu->getthongtinguithu ( $this->_uid );
		$this->view->thonntincauhinh = $ch;
		// lây thong tin lien he
		$lh = new Model_Lienhe ();
		$datalh = $lh->getalllienhesudung ( $this->_uid);
		$this->view->lienhedata = $datalh;
		//echo $url="http://".$_SERVER['HTTP_HOST'];
	}
	/**
	 * admin888<doan.hut@gmail.com>
	 * Description : Bắt biến gửi thư hoặc insert thư nháp
	 */
	public function guithuAction()
	{
		$guithu = new Model_Guithu();
		$lh     = new Model_Lienhe();
		$tkhoa =     new Model_Tukhoa();
		$data = $this->_getAllParams();
		//echo "<pre>"; print_r($data);die();
// tes key 
		$conten = $data['noidung_thu_soan'];
		$tukhoa = $data['idtukhoa'];
		$idlienhe = $data['arr_idlh'];
		//kiểm tra xem trong chuỗi có  key work hay không 
		$tk = explode(',', $tukhoa);
		$tongtukhoa= count($tk );
		for ($i = 0 ;$i < $tongtukhoa ;$i++){
			$iskeywork = $guithu->checkkeywork($conten,$tk[$i]);
			
		}
		// tìm từ khóa và tên trường khách hàng cần select
	
// end test key 		
		
		
		$luunhap = $data['luunhap'];
		//kiểm tra xem Params luunhap là 1 thì sẽ lưu nháp  
		if ($luunhap == 1){
			$luunhap = $guithu->addthunhap($this->_uid,$data);//insert luu nhap
			if (!$luunhap ){
				$this->_redirect('index');
			 }else{
					if($data['tong_file'] != 0){
			 		//thuc thi luu file vao db
					$loaithu = 0; // 0 la thu nhap
			 		$addfile = $guithu->themfilevadb($this->_uid,$luunhap,$loaithu,$data);
					}//neu add file rooi thi tro ve dang sach mai 
			 		$this->_redirect('guithu');
			 }
		}else{
			// khi người dùng nhấn gửi thì thao tac gửi mail và lưu email vào db
			// lấy thông tin cài đặt của người gửi mail 
			$gt = new Model_Guithu();
			$ts = new Model_Caidat();
			$thongso = $ts->getthongsotheoid($this->_uid);
			//echo "<pre>"; print_r($thongso);die();
			//thuc thi gui mai
		$callemal = new Zend_Mail_Transport_Smtp( trim($thongso['SMTP_server']),
										array (
												'auth' => 'login',
												'username' => trim ($thongso['user_name_email']),
												'password' => trim( base64_decode($thongso['pass_email'])),
												'ssl' => trim($thongso['loai_mahoa']),
												'port' => trim($thongso['SMTP_port'])
												)
				 );		 
		
         Zend_Mail::setDefaultTransport ($callemal);
         Zend_Mail::setDefaultFrom($thongso['user_name_email']);//sét mặc dịnh người gửi thư
         Zend_Mail::setDefaultReplyTo($thongso['user_name_email']);//set mặc định người nhận mail phản hồi
         $mail = new Zend_Mail ( 'UTF-8' );
         // trộn mail 
         if ($data['chontukhoa'] == 0){
         	$mail->setBodyHtml($data['noidung_thu_soan']); // nếu người dùng không chọn từ khóa thì sẽ lấy nội dung mail như bình thường
         }else{
         	// kiểm tra xem trong body có từ khóa hay không 
         		// lấy contem tron maii
			$arr_idlh = explode(',',$idlienhe);
			foreach ($arr_idlh AS $lhid){
				//$conten_final = $guithu->trontukhoavoilienhe($tukhoa,$lhid,$conten);
				//echo $conten_final; die();
				$conten_final  = $guithu->getcontentron($lhid,$conten);
				//$mail->setBodyHtml($conten_final);
			}
         	
         	echo $conten_final; die();
         } 
         // đếm số nguoi cân gủi và gưi mail
         //trường hợp 1 khi người dùng chọn mail từ danh sach liên hệ hoặc tìm kiếm  liên hệ
         if ($data['arr_email'] != '0'){
	         $mangdiachi = explode(',', $data['arr_email']) ;
	         $mangthu = count($mangdiachi);
	         $songuoi = $mangthu -1;
	         for($i=0; $i< $songuoi; $i++){
	         	//echo $mangdiachi[$i]; die();
	         	$mail->addTo ($mangdiachi[$i]); 
	         }
         }else if($data['show_nguoinhan'] != ''){
         	 //trường hợp 2 khi người dùng nhập vào dịa chỉ email
         	 $mangdiachi = explode(',', $data['show_nguoinhan']) ;
	         $mangthu = count($mangdiachi);
	         if($mangthu != 1){
	        	 $songuoi = $mangthu -1;
	         }else{
	         	$songuoi = $mangthu;
	         }
	         for($i=0; $i< $songuoi; $i++){
	         $mail->addTo ($mangdiachi[$i]);
	         }         	 
         }
         // cc email
         if ($data['cc_'] != ''){ 
             $mangdiachi = explode(',', $data['cc_']) ;
	         $mangthu = count($mangdiachi);
	         if($mangthu != 1){
	        	 $songuoi = $mangthu -1;
	         }else{
	         	$songuoi = $mangthu;
	         }
	         for($i=0; $i< $songuoi; $i++){
	         //$mail->addTo ($mangdiachi[$i]);
	         $mail->addCc($mangdiachi[$i]); // là 1 bản sao mà người nhận email sẽ thấy
	         }         	
         
         }
         //Bcc Email
		 if ($data['bcc_'] != ''){ 
             $mangdiachi = explode(',', $data['bcc_']) ;
	         $mangthu = count($mangdiachi);
	         if($mangthu != 1){
	        	 $songuoi = $mangthu -1;
	         }else{
	         	$songuoi = $mangthu;
	         }
	         for($i=0; $i< $songuoi; $i++){
	         $mail->addBcc($mangdiachi[$i]); // là gủi bản sao email mà người nhận sẽ không thấy
	         }         	
         
         }
         // tập tin đính kèm
       	 if ($data['tong_file'] !=''){
	       if (isset($data['file'])){
	       	 	$linkfile =  $data['file'];
		       	$tongfile = count($linkfile);
				for ($i= 0 ; $i< $tongfile;$i++){
			        $pathinfo = pathinfo($linkfile[$i]); // tach roi ca phan tu
			        $myImage = file_get_contents($linkfile[$i]);// cho vao duong dan hinh va bien no thanh chuỗi thập nhị phân
					$at = new Zend_Mime_Part($myImage);//khoi tao Zend_Mime_Part và truyền vào chuỗi thập nhị phân
					//$at->type        = 'image/gif';
					$at->disposition = Zend_Mime::DISPOSITION_INLINE;
					$at->encoding    = Zend_Mime::ENCODING_BASE64;
					$at->filename    = $pathinfo['basename']; // lay ten file  hien thi
					$mail->addAttachment($at);
				}
	        }
       	}      
         $mail->setSubject ($data['chu_de']);
         $mail->setFrom ($thongso['user_name_email']);
         $ketnoi = $mail->send();
         Zend_Mail::clearDefaultFrom(); //xoa bo thuoc tinh set defaul from 
		 Zend_Mail::clearDefaultReplyTo();// xoa bo thuoc tinh set defaul tra loi thu replyto
		 if ($ketnoi){
		 	//thự hiện lưu thư vào bang
		 	$luthu = $gt->luuthudagui($this->_uid,$data,1);
		 	// thực hiện lưu file đính kèm  đã gửi
 			if($data['tong_file'] != 0){
			$loaithu = 1; // 1 la thư nhap
	 		$addfile = $gt->themfilevadb($this->_uid,$luthu,$loaithu,$data);
			}
		 	
		 }else {
		 	$this->_redirect('index');// neu gui thu loi thi quay lai index
		 }	
	 } //end else gui thu
	 	$this->_redirect('thudagui');
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout
		
	}
	/**
	 * 
	 *admin888 <doan.hut@gmail.com>
	 * Enter description :
	 */
	public function sendmailAction()
	{
		$guithu = new Model_Guithu();
		$lh     = new Model_Lienhe();
		$tkhoa  = new Model_Tukhoa();
		$data = $this->_getAllParams();	
		$luunhap = $data['luunhap'];
		//kiểm tra xem Params luunhap là 1 thì sẽ lưu nháp  
		if ($luunhap == 1){
			$luunhap = $guithu->addthunhap($this->_uid,$data);//insert luu nhap
			if (!$luunhap ){
				$this->_redirect('index');
			 }else{
					if($data['tong_file'] != 0){
			 		//thuc thi luu file vao db
					$loaithu = 0; // 0 la thu nhap
			 		$addfile = $guithu->themfilevadb($this->_uid,$luunhap,$loaithu,$data);
					}//neu add file rooi thi tro ve dang sach mai 
			 		$this->_redirect('guithu');
			 }
		}else{
		// Thực mếu không chọn là luu nháp thì send mail và luu lại 
			
			
		}

		// Disable playoaut
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout
		
	}
}